package com.cloudkinto.service.ft;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cloudkinto.common.web.PageResult;
import com.cloudkinto.common.web.SingleResult;
import com.cloudkinto.entity.FreightTempDo;
import com.cloudkinto.vo.channel.lc.LcChannelPageRes;
import com.cloudkinto.vo.ft.*;
import com.cloudkinto.vo.ft.importVo.FreightWeightImportRes;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 物流费模板 service接口
 * </p>
 *
 * @author hua
 * @since 2024-11-07
 */
public interface FreightTempService extends IService<FreightTempDo> {


    Object addFreightTemp(FreightTempAddReq req, Long userId, Long tenantId);

    Object addFreight(FreightAddReq req, Long userId, Long tenantId);

    Object updateFreightTemp(FreightTempUpdateReq updateVo, Long userId, Long tenantId);

    Object updateFreight(FreightUpdateReq req, Long userId, Long tenantId);

    int delete(Long id, Long userId, Long tenantId);

    FreightTempDetailRes detail(Long id);

    SingleResult pageInit();

    List<FreightTempPageVo> getList(Map<String, Object> map);

    PageResult getListPage(Map<String, Object> map);

    void getFullTemplate(Integer volumeWeightCalculateWay, String zone, HttpServletResponse response);

    FreightWeightImportRes importT(MultipartFile file, Integer volumeWeightCalculateWay, String zone);

    List<LcChannelPageRes> getChannelList(Long tenantId);

    void updateStatus(FreightStatusUpdateReq req, Long userId, Long tenantId);


}
